﻿using Common.Contract.SalePerformance.Request;
using Common.Contract.SalePerformance.Response;
using System.ServiceModel;

namespace Common.Contract.SalePerformance
{
    [ServiceContract]
    public interface ISalePerformance
    {
        #region Sale performance
        [OperationContract]
        RetrieveSalePerformanceByDaoResponse RetrieveDepositByDao(RetrieveSalePerformanceByDaoRequest request);
        [OperationContract]
        RetrieveSalePerformanceByDaoResponse RetrieveLoanProductByDao(RetrieveSalePerformanceByDaoRequest request);
        [OperationContract]
        RetrieveSalePerformanceByDaoResponse RetrieveLoanProductProgramByDao(RetrieveSalePerformanceByDaoRequest request);
        [OperationContract]
        RetrieveSalePerformanceByDaoResponse RetrieveLoanPromoProgramByDao(RetrieveSalePerformanceByDaoRequest request);
        [OperationContract]
        RetrieveSalePerformanceByDaoResponse RetrieveCashManagementByDao(RetrieveSalePerformanceByDaoRequest request);
        [OperationContract]
        RetrieveSalePerformanceByDaoResponse RetrieveTradeByDao(RetrieveSalePerformanceByDaoRequest request);
        #endregion
        #region KPI
        [OperationContract]
        RetrieveSaleKpiByDaoResponse RetrieveSaleKpiByDao(RetrieveSaleKpiByDaoRequest request);
        [OperationContract]
        RetrieveSaleKpiByDaoResponse RetrieveSaleKpiRegion(RetrieveSaleKpiByDaoRequest request);
        [OperationContract]
        RetrieveRankKpiByBranchResponse RetrieveRankKpiByBranch(RetrieveRankKpiByBranchRequest request);
        [OperationContract]
        RetrieveRawDataDNBQByDaoResponse RetrieveRawDataDNBQByDao(RetrieveRawDataDNBQByDaoRequest request);
        [OperationContract]
        RetrieveRawDataDNBQByDaoResponse RetrieveRawDataHDBQByDao(RetrieveRawDataDNBQByDaoRequest request);
        [OperationContract]
        RetrieveRawDataDNBQByDaoResponse RetrieveRawDataDNTCBQByDao(RetrieveRawDataDNBQByDaoRequest request);
        [OperationContract]
        RetrieveRawDataDNBQByDaoResponse RetrieveRawDataBadbankByDao(RetrieveRawDataDNBQByDaoRequest request);
        [OperationContract]
        RetrieveRankingSaleContestMSBOResponse RetrieveRankingSaleContestMSBO(RetrieveRankingSaleContestMSBORequest request);
        [OperationContract]
        RetrieveRankingSaleContestMSBOResponse RetrieveRankingSaleContestBranch(RetrieveRankingSaleContestMSBORequest request);
        [OperationContract]
        RetrieveRawDataCardByDaoResponse RetrieveRawDataCardByDao(RetrieveRawDataCardByDaoRequest request);
        #endregion
        #region Sale contest
        [OperationContract]
        RetrieveRankingSaleContestMSBOResponse RetrieveRankingSaleContestRegion(RetrieveRankingSaleContestMSBORequest request);
        [OperationContract]
        RetrieveRawDataBilAwardResponse RetrieveRawDataBilAwardByDao(RetrieveRawDataBilAwardRequest request);
        [OperationContract]
        RetrieveRawDataKHHDByDaoResponse RetrieveRawDataKHHDByDao(RetrieveRawDataKHHDByDaoRequest request);
        [OperationContract]
        RetrieveKpiMsboRawDailyByDaoResponse RetrieveKpiMsboRawDailyByDao(RetrieveKpiMsboRawDailyByDaoRequest request);
        #endregion
    }
}
